package org.xpandaframework.base.service;

import org.xpandaframework.base.curd.impl.BaseEntity;
import org.xpandaframework.base.exception.XpandaFrameworkException;

/**
 * <p>
 * CopyRright (c)2008-2014: Camelot
 * <p>
 * Project: xpandaframework
 * <p>
 * Module ID: <模块类编号可以引用系统设计中的类编号>
 * <p>
 * Comments: 基础服务接口
 * <p>
 * JDK version used: JDK1.7
 * <p>
 * NameSpace: org.xpandaframework.base.service.BaseService.java
 * <p>
 * Author: Angus
 * <p>
 * Create Date: 2014年11月25日
 * <p>
 * Modified By: <修改人中文名或拼音缩写>
 * <p>
 * Modified Date: <修改日期>
 * <p>
 * Why & What is modified: <修改原因描述>
 * <p>
 * Version: v1.0
 */
public interface BaseService<T extends BaseEntity> {

  /**
   * 新增对象
   * 
   * @param t
   *          被新增的对象
   * @return T 被保存的完整对象
   * @throws XpandaFrameworkException
   */
  public T create(T t) throws XpandaFrameworkException;

  /**
   * 根据ID更新数据
   * 
   * @param t
   *          被更新的对象
   * @return T 被更新的对象
   * @throws XpandaFrameworkException
   */
  public int updateById(T t) throws XpandaFrameworkException;

  /**
   * 根据ID查询单条数据
   *
   * @param id
   * @return T
   * @throws XpandaFrameworkException
   */
  public T readOneById(String id) throws XpandaFrameworkException;

  /**
   * 根据ID删除单条数据
   *
   * @param id
   * @return int
   * @throws XpandaFrameworkException
   */
  public int delOneById(String id) throws XpandaFrameworkException;

}
